#include "getmessagesexecutor.h"

GetMessagesExecutor::GetMessagesExecutor(){

}

GetMessagesExecutor::GetMessagesExecutor(Session* s){
    session =s;
}

void GetMessagesExecutor::execute(Para* cmd){
    QBool flag = QBool(false);
    foreach (Para p, cmd->getArgs())
    {
        if (p.getName() == "success")
        {
            if (p.getText() == "TRUE")
                flag=QBool(true);
            else
                flag = QBool(false);
            break;
        }
    }
    session->getCurrentRoom()->cleanMessages();
    foreach (Para p, cmd->getArgs())
    {
        if (flag){
            if (p.getName() == "message")
            {
                QString msg = "";
                msg += p.getArgs()[1].getText();
                msg += " @ ";
                msg += p.getArgs()[0].getText();
                msg += ": ";
                msg += p.getArgs()[2].getText();
                session->getCurrentRoom()->addMsg(msg);
            }
        }else{
            if (p.getName() == "reason")
            {
                emit fail(p.getText());
                break;
            }
        }
    }
    emit proceed();
}
